package br.consultorio.digital.control;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
import br.consultorio.digital.R;
import br.consultorio.digital.modelo.ModelAgenda;

public class AgendaMenu extends Activity implements OnClickListener {
	private int id_medico;
	private boolean in_data = false, in_medico = false;
	private String tx_data, tx_medico;
	private TextView agendadata, agendamedico;
	private ImageButton btdatacheck, btmedicoheck, btbuscar;
	protected static final int VOLTAR = 1, AgendaMenu = 2,
			AgendaDataListar = 3, MedicoListar = 4;

	@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.agendamenu);

		findViewListener();
	}

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK) {
			Intent it = new Intent(this, MainController.class);
			it.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
			startActivity(it);
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}

	// @Override
	// public void onBackPressed() {
	// Intent it = new Intent(this, MainController.class);
	// it.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
	// startActivity(it);
	// }

	private void findViewListener() {
		btdatacheck = (ImageButton) findViewById(R.idAgendaMenu.btAgendaDataCheck);
		btmedicoheck = (ImageButton) findViewById(R.idAgendaMenu.btPacieneteCheck);
		btbuscar = (ImageButton) findViewById(R.idAgendaMenu.btBuscar);

		agendadata = (TextView) findViewById(R.idAgendaMenu.tvAgendaData);
		agendamedico = (TextView) findViewById(R.idAgendaMenu.tvPacienete);

		btbuscar.setOnClickListener(this);

		agendadata.setOnClickListener(this);
		agendamedico.setOnClickListener(this);
	}

	@Override
	public void onResume() {
		btbuscar.setBackgroundResource(R.drawable.btbuscar);
		super.onResume();
	}

	public void onClick(View v) {
		switch (v.getId()) {
		case R.idAgendaMenu.btAgendaData:
		case R.idAgendaMenu.tvAgendaData:
			abrirTela(AgendaDataListar.class);
			break;
		case R.idAgendaMenu.btAgendaDataCheck:
			if (in_data) {
				btdatacheck.setBackgroundResource(R.drawable.checkn);
				in_data = false;
				agendadata.setText("Todos");
			} else {
				abrirTela(AgendaDataListar.class);
			}
			break;
		case R.idAgendaMenu.btPacienete:
		case R.idAgendaMenu.tvPacienete:
			abrirTela(MedicoListar.class);
			break;
		case R.idAgendaMenu.btPacieneteCheck:
			if (in_medico) {
				btmedicoheck.setBackgroundResource(R.drawable.checkn);
				in_medico = false;
				id_medico = 0;
				agendamedico.setText("Todos");
			} else {
				abrirTela(MedicoListar.class);
			}
			break;
		case R.idAgendaMenu.btBuscar:
			btbuscar.setBackgroundResource(R.drawable.btbuscar);
			ModelAgenda atModel = new ModelAgenda(this);
			if (atModel.tratarConsultaMedico(tx_data, id_medico)) {
				abrirTelaAtividade(AgendaListar.class);
			} else {
				Toast.makeText(getApplication(),
						"Não existe Atividades para os parâmetros escolhidos.",
						Toast.LENGTH_LONG).show();
			}
			break;
		}
		btbuscar.setBackgroundResource(R.drawable.btbuscar);
	}

	/**
	 * Abre a tela.
	 */
	private void abrirTela(Class<?> c) {
		Intent it = new Intent(this, c);
		startActivityForResult(it, 1);
	}

	/**
	 * Abre a tela.
	 */
	private void abrirTelaAtividade(Class<?> c) {
		Intent it = new Intent(this, c);
		it.putExtra("tx_data", tx_data);
		it.putExtra("id_medico", id_medico);
		startActivity(it);
	}

	@Override
	public void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (resultCode == AgendaDataListar) {
			tx_data = data.getExtras().getString("tx_data");
			btdatacheck.setBackgroundResource(R.drawable.check);
			in_data = true;
			agendadata.setText(tx_data);
		} else if (resultCode == MedicoListar) {
			id_medico = data.getExtras().getInt("id_medico");
			tx_medico = data.getExtras().getString("tx_medico");
			btmedicoheck.setBackgroundResource(R.drawable.check);
			in_medico = true;
			agendamedico.setText(tx_medico);
		}
	}
}
